/*
 * DeclHandler.hpp
 *
 *  Created on: Dec 10, 2013
 *      Author: paste
 */

#ifndef DECLHANDLER_HPP_
#define DECLHANDLER_HPP_

namespace saxpp
{
  template<class CH = char, class TRAITS = std::char_traits<CH> >
    class DeclHandler
    {
      typedef CH char_type;
      typedef TRAITS char_traits;
      typedef std::basic_string<char_type, char_traits> string_type;

      virtual
      ~DeclHandler()
      {
      }

      virtual void
      attributeDecl(const string_type &/*eName*/, const string_type &/*aName*/,
          const string_type &/*type*/, const string_type &/*mode*/,
          const string_type &/*value*/) = 0;

      virtual void
      elementDecl(const string_type &/*name*/,
          const string_type &/*model*/) = 0;

      virtual void
      externalEntityDecl(const string_type &/*name*/,
          const string_type &/*publicId*/, const string_type &/*systemId*/) = 0;

      virtual void
      internalEntityDecl(const string_type &/*name*/,
          const string_type &/*value*/) = 0;
    };
}

#endif /* DECLHANDLER_HPP_ */
